home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Disc 7
/
Commodore_Disc_07_19xx_-_de.d64
/
gen.spr.ut. demo
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
7KB
|
189 lines
10 rem general sprite utility demo
20 rem -----------------------------
30 :
40 poke 53280,0:poke 53281,0:print"[147]"chr$(14)
50 print"[158] [201]st [199]eneral [211]prite [213]tility im "
60 print" im [211]peicher (j/n)..:"
70 get a$:if a$="n" then print" [194]itte nachladen und neu [211]tarten":end
80 if a$="j" then sys 49152:goto 620
90 goto 70
100 :3D
110 print"[147] [196]er [194]efehl #s (fuer [211]et [211]prite)"
120 print" benoetigt folgend [208]arameter:"
130 #an,1,6,8,204,205,206,207,208,209,210,211
140 :
150 data 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,174,128, 2,255,224, 11,174
160 data184, 43,191,186,175,255,250,171,255,234,166,102,102, 37, 85, 88, 58
170 data170,160, 63, 15, 12, 51, 15, 48, 48,205,204,207, 48,207,199, 48,204
180 data 60,243, 60,115, 3, 15,193, 17, 49, 64, 0, 72, 0, 0, 0, 0, 0
190 data 0, 0, 0, 8, 0, 0,174,128, 2,255,224, 11,174,184, 43,191,186
200 data175,255,250,171,255,234,166,102,102, 37, 85, 88, 58,170,160, 63, 63
210 data 61,255, 60, 51,211, 52, 55,195, 52,204,192,204,204,240,207,204,115
220 data195,204,195, 49, 63, 17, 68, 16, 0, 0, 0, 0, 0, 0, 0, 0, 8
230 data 0, 0,174,128, 2,255,224, 11,174,184, 43,191,186,175,255,250,171
240 data255,234,166,102,102, 37, 85, 88, 58,170,160, 63, 15, 12, 15, 15, 3
250 data 48,205,211,195,112, 51,195, 16,204, 48,195, 12, 48,115, 15, 20, 3
260 data 1, 4, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,174,160
270 data 2,255,224, 11,174,184, 43,191,186,175,255,250,171,255,234,166,102
280 data102, 37, 85, 88, 58,170,172, 51, 15, 7, 51, 15, 7,220,205,211,195
290 data112, 51, 51, 48,207, 51, 48,204,195, 48,204,220, 12,224, 65, 4, 64
300 data 0, 0,0,0
310 data 2,160, 0, 2,160, 0, 3,216, 0, 23,224, 0, 55,240, 0, 59, 88
320 data 0, 57,248, 0, 27,224, 0, 5,240,192, 29,239,240,254, 31,232, 15
330 data252,207, 3,240,120, 0, 32, 0, 0, 32, 0, 0,192, 0, 0,160, 0
340 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
350 data 0, 0, 1, 80, 0, 1, 80, 0, 3,224, 0, 23,248, 0, 53, 88, 0
360 data 59,232, 0, 4,240, 96, 29,239,240,254, 31,232, 15,252,207, 3,240
370 data124, 0, 32, 0, 0, 32, 0, 0,192, 0, 0,160, 0, 0, 0, 0, 0
380 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
390 data 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 2,168, 0, 15,246, 0, 3
400 data 56, 96, 59,247,240,248, 15,232, 15,252,207, 3,240,124, 0, 32, 0
410 data 0, 32, 0, 0,192, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0
420 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
430 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 0, 15,248, 96, 57, 87
440 data240,254,171,232, 14, 84,207, 3,240,124, 0, 32, 0, 0, 32, 0, 0
450 data192, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
460 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
470 data 0, 0, 0, 0, 0, 0, 0, 0, 15,248, 96, 60, 15,240,251,243,232
480 data 15,252,207, 19,248,124, 25, 80, 0, 12,168, 0, 0, 0, 0, 0, 0
490 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
500 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
510 data 0, 0, 0, 0, 15,248, 96, 60, 15,240,251,243,232, 15,252,207, 19
520 data248,124, 24,112, 0, 28,248, 0, 6,244, 0, 2,124, 0, 0,212, 0
530 data 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
540 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
550 data 15,248, 96, 60, 15,240,251,243,232, 15,252,207, 19,248,124, 25, 80
560 data 0, 12,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
570 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
580 data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,224, 0, 15,248, 96, 57
590 data 87,240,254,171,232, 14, 84,207, 3,240,124, 0, 32, 0, 0, 32, 0
600 data 0,192, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
610 data 0, 0, 0
620 :
630 rem #s
640 :
650 print"[150] [194]itte warten"
660 for t=0 to 12*64:read a:poke 200*64+t,a:next
670 print"[147] [196]er [194]efehl [158]#s (fuer [211]et [211]prite)"
680 print" benoetigt folgende [208]arameter:"
690 print"[158] #s,[206]r.,x,y,v/h,g/k,g/k,h/m,[194]lock"
700 print" [193]lso z.[194]. "
710 print"[158] #s,1,50,150,h,g,g,h,204 ([195][210])
720 #s,1,50,150,h,g,g,h,204
730 [153]" usw.":[141] 940
740 [153]"sys #s,2,100,150,v,k,k,h,204 (len(NULL))
750 #s,2,100,150,v,k,k,h,204:gosub 940
760 print"[158] #s,4,150,150,h,g,k,h,204 ([195][210])
770 #s,4,150,150,h,g,k,h,204:[141] 940
780 [153]"sys #s,8,200,150,v,k,g,h,204 (len(NULL))
790 #s,8,200,150,v,k,g,h,204:gosub 940
800 print"[158] #s,16,270,150,v,g,g,h,204 ([195][210]) [x>255 !]
810 #s,16,270,150,v,g,g,h,204:[141] 940
820 [153]"sys #s,32,100,180,v,g,g,m,200 (len(NULL))
830 #s,32,100,180,v,g,g,m,200:gosub 940
840 print" [212][193][211][212][197] "
850 get a$:if a$="" then 850
860 print"[147] [196]er [194]efehl [158]#c (fuer [211]et [195]olor)"
870 print" [198]ormat: [158]#c,[211]pr.[206]r.,sc,mc1,mc2"
880 print" [193]lso z.[194].[158] #c,1,5 (da kein [205]ulti-"
890 print" colorsprite nur eine [198]arbe)"
900 gosub 940:#c,1,5:gosub 940
910 print" [207]der bei [205]ulticolorsprites"
920 print"[158] #c,32,1,2,3 ([195][210])"
930 gosub 940:#c,32,1,2,3:gosub 940:goto 960
940 get a$:if a$="" then 940
950 return
960 print" [213]nd jetzt der [210]est"
970 #c,2,6:gosub 940
980 #c,4,7:gosub 940
990 #c,8,8:gosub 940
1000 #c,16,9:gosub 940
1010 print"[147] [196]er [194]efehl [158]#o (fuer [211]prite [207][198][198])
1020 [153]" kann dann die (NULL)prites wieder aus-"
1030 [153]" schalten.
1040 print" [194]efehl: [158]#o,[211]pr.[206]r. ([195][210])"
1050 print" [215]ollen [211]ie die [211]prites 1,4 u. 8"
1060 print" [193]usschalten so lautet der [194]efehl"
1070 print"[158] #o,13 ([195][210])":gosub 940
1080 #o,13
1090 print" [193]nschalten kann man die [211]prites"
1100 print" dann wieder ueber den #s.. [194]efehl":gosub 940
1110 #s,1,50,150,h,g,g,h,204
1120 #s,4,150,150,h,g,k,h,204
1130 #s,8,200,150,h,k,g,h,204
1140 gosub 940
1150 print"[147] [196]er naechste [194]efehl dient zur [193]ni-"
1160 print" mation der [211]prites :"
1170 print" [194]efehl:[158]#an,[211]pr.[206]r.,[211]peed,[193]nzahl,-"
1180 print" [194]lock 1,[194]lock 2,.. ([195][210])"
1190 print" [193]lso in diesem [194]eispiel lautet der"
1200 print" [194]efehl so:"
1210 print"[158] #an,1,6,8,204,205,206,207,208,209,210,211 ([195][210])
1220 [153]" vals koennen bis zu 20 atnnimations-"
1230 [153]" sequenzen pro (NULL)prite erreicht werden."
1240 [141] 940
1250 #an,1,6,8,204,205,206,207,208,209,210,211
1260 [141] 940
1270 [153]" (NULL)nd nun die anderen (NULL)prites":[141] 940
1280 #an,2,5,8,204,205,206,207,208,209,210,211
1290 #an,4,5,8,204,205,206,207,208,209,210,211
1300 #an,8,5,8,204,205,206,207,208,209,210,211
1310 #an,16,5,8,204,205,206,207,208,209,210,211
1320 [141] 940
1330 [153]"load str$er (NULL)prite (NULL)r. 32 noch mit:"
1340 [153]" sys#an,32,10,4,200,201,202,203 (len(NULL))"
1350 [141] 940
1360 #an,32,10,4,200,201,202,203
1370 [141] 940
1380 [153]"load atnnhalten laesst sich die atnnimation"
1390 [153]" mit dem peekefehl:sys#ao,(NULL)pr.(NULL)r. (len(NULL))"
1400 [153]" (fuer atnnimation off):"
1410 [153]" (NULL)oll (NULL)prite 1 anhalten so lautet"
1420 [153]" str$er peekefehl so:sys #ao,1 (len(NULL))":[141] 940
1430 #ao,1
1440 [141] 940
1450 [153]" chr$estartet wird dann wieder mit den"
1460 [153]" sys#an peekefehl":[141] 940
1470 #an,1,6,8,204,205,206,207,208,209,210,211
1480 [141] 940
1490 [153]"load str$ie naechste ascunktion von chr$eneral-"
1500 [153]" (NULL)prite (NULL)tility ist der peekefehl:"
1510 [153]" sys#ms,(NULL)pr.(NULL)r.,(NULL)peed,(NULL)ichtung (len(NULL))"
1520 [153]" das #ms steht fuer (NULL)ove (NULL)prite "
1530 [153]" (NULL)ollen (NULL)ie z.peek. (NULL)prite 1 nach oben"
1540 [153]" bewegen so lautet der peekefehl:"
1550 [153]"sys #ms,1,1,1 (len(NULL))":[141] 940
1560 #ms,1,1,1:[141] 940
1570 [153]" str$ie str$aten fuer die (NULL)ichtung entnehmen"
1580 [153]" (NULL)ie doch bitte der (NULL)rogrammbeschrei-"
1590 [153]" bung."
1600 [153]" (NULL)nd nun die anderen (NULL)prites":[141] 940
1610 #ms,1,2,2
1620 #ms,2,1,3
1630 #ms,4,1,4
1640 #ms,8,1,6
1650 #ms,16,1,7
1660 #ms,32,1,8
1670 [141] 940
1680 [153]"load (NULL)oll ein (NULL)prite angehalten werden"
1690 [153]" so dient dazu der peekefehl:"
1700 [153]" sys#mo,(NULL)pr.(NULL)r. (len(NULL))
1710 print" ( [205]ove [207][198][198])"
1720 print" [211]oll [211]prite 1 u. 16 stehen so lautet"
1730 print" der [194]efehl:[158] #mo,17 ([195][210])"
1740 gosub 940
1750 #mo,17
1760 gosub 940
1770 print" [196]ie [194]ewegung kann dann wieder mit dem"
1780 print"[158] #ms [194]efehl fortgesetzt werden"
1790 gosub 940
1800 #ms,1,2,2
1810 #ms,16,1,7
1820 gosub 940
1830 print"[147] [193]lle die [198]unktion sind unabhaenhig"
1840 print" von einander und laufen alle per"
1850 print"[150] [201]nterrupt."
1860 print" [218]um [194]eweis hier das [196]emoprogramm....."
1870 gosub 940
1880 list